<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>strand::execute</title>
    <link rel="stylesheet" href="../../../boostbook.css" type="text/css">
    <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
    <link rel="home" href="../../../index.html" title="Asio">
    <link rel="up" href="../strand.html" title="strand">
    <link rel="prev" href="dispatch.html" title="strand::dispatch">
    <link rel="next" href="get_inner_executor.html" title="strand::get_inner_executor">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%">
    <tr>
        <td valign="top"><img alt="asio C++ library" width="250" height="60" src="../../../asio.png"></td>
    </tr>
</table>
<hr>
<div class="spirit-nav">
    <a accesskey="p" href="dispatch.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u"
                                                                                         href="../strand.html"><img
        src="../../../up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../home.png"
                                                                                            alt="Home"></a><a
        accesskey="n" href="get_inner_executor.html"><img src="../../../next.png" alt="Next"></a>
</div>
<div class="section">
    <div class="titlepage">
        <div>
            <div><h4 class="title">
                <a name="asio.reference.strand.execute"></a><a class="link" href="execute.html" title="strand::execute">strand::execute</a>
            </h4></div>
        </div>
    </div>
    <p>
        <a class="indexterm" name="asio.indexterm.strand.execute"></a>
        Request the strand to invoke
        the given function object.
    </p>
    <pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
    <span class="keyword">typename</span> <span class="identifier">Function</span><span class="special">&gt;</span>
<span class="identifier">constraint</span><span class="special">&lt;</span> <span
                class="identifier">execution</span><span class="special">::</span><span
                class="identifier">can_execute</span><span class="special">&lt;</span> <span
                class="keyword">const</span> <span class="identifier">Executor</span> <span
                class="special">&amp;,</span> <span class="identifier">Function</span> <span
                class="special">&gt;::</span><span class="identifier">value</span><span class="special">,</span> <span
                class="keyword">void</span> <span class="special">&gt;::</span><span
                class="identifier">type</span> <span class="identifier">execute</span><span class="special">(</span>
    <span class="identifier">Function</span> <span class="special">&amp;&amp;</span> <span
                class="identifier">f</span><span class="special">)</span> <span class="keyword">const</span><span
                class="special">;</span>
</pre>
    <p>
        Do not call this function directly. It is intended for use with the <a class="link"
                                                                               href="../execution__execute.html"
                                                                               title="execution::execute"><code
            class="computeroutput"><span class="identifier">execution</span><span class="special">::</span><span
            class="identifier">execute</span></code></a>
        customisation point.
    </p>
    <p>
        For example:
    </p>
    <pre class="programlisting"><span class="identifier">asio</span><span class="special">::</span><span
            class="identifier">strand</span><span class="special">&lt;</span><span
            class="identifier">my_executor_type</span><span class="special">&gt;</span> <span
            class="identifier">ex</span> <span class="special">=</span> <span class="special">...;</span>
<span class="identifier">execution</span><span class="special">::</span><span class="identifier">execute</span><span
                class="special">(</span><span class="identifier">ex</span><span class="special">,</span> <span
                class="identifier">my_function_object</span><span class="special">);</span>
</pre>
    <p>
        This function is used to ask the strand to execute the given function object
        on its underlying executor. The function object will be executed according
        to the properties of the underlying executor.
    </p>
    <h6>
        <a name="asio.reference.strand.execute.h0"></a>
        <span><a name="asio.reference.strand.execute.parameters"></a></span><a class="link"
                                                                               href="execute.html#asio.reference.strand.execute.parameters">Parameters</a>
    </h6>
    <div class="variablelist">
        <p class="title"><b></b></p>
        <dl>
            <dt><span class="term">f</span></dt>
            <dd>
                <p>
                    The function object to be called. The executor will make a copy of
                    the handler object as required. The function signature of the function
                    object must be:
                </p>
                <pre class="programlisting"><span class="keyword">void</span> <span
                        class="identifier">function</span><span class="special">();</span>
</pre>
            </dd>
        </dl>
    </div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%">
    <tr>
        <td align="left"></td>
        <td align="right">
            <div class="copyright-footer">Copyright © 2003-2022 Christopher M. Kohlhoff<p>
                Distributed under the Boost Software License, Version 1.0. (See accompanying
                file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
            </p>
            </div>
        </td>
    </tr>
</table>
<hr>
<div class="spirit-nav">
    <a accesskey="p" href="dispatch.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u"
                                                                                         href="../strand.html"><img
        src="../../../up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../home.png"
                                                                                            alt="Home"></a><a
        accesskey="n" href="get_inner_executor.html"><img src="../../../next.png" alt="Next"></a>
</div>
</body>
</html>
